package com.itcoon.cloud.framework.ex;

import com.itcoon.cloud.framework.ex.errorcode.IServiceErrorCode;
import com.itcoon.cloud.framework.ex.exception.BaseServiceException;
import org.springframework.http.HttpStatus;

public interface Raiser {

     void raiseCommon(String localizedMessage, String... args);

     void raiseCommon(String localizedMessage, Throwable cause, String... args);

    <EX extends BaseServiceException, E extends IServiceErrorCode<EX>> void raise(E responseEnum, String... args);

    <EX extends BaseServiceException, E extends IServiceErrorCode<EX>> void raise(E responseEnum, Throwable cause, String... args);

    void raise(String localizedMsg, String... args);

    void raise(String localizedMsg, Throwable cause, String... args);

    void raisePseudo(Object T);

    void raisePseudo(Object T, HttpStatus status);

    void raisePseudo(Object T , HttpStatus status, Throwable cause);
}
